package csxXiti.xiti2;

import java.util.Scanner;

/**
 * 2021年9月2日18:15:32
 * 请定义一个交通工具(Vehicle)的类其中有:
 * 属性：速度(speed)、体积(size)等，
 * 方法：移动(move())、设置速度(setSpeed(int speed))、加速speedUp()、减速speedDown()等。
 * 最后在类 Vehicle中的 main()中实例化一个交通工具对象并通过方法给它初始化 speed,size 的值
 * 并且通过打印出来。另外调用加速、减速的方法对速度进行改变。
 *
 * 存在bug:不能输入字母
 */

public class xiti2_1 {

    static String VehicleName() {
        String name[] = {"摩托车", "电动车", "汽车", "公交车"};
        boolean b = false;
        int size = 0;
        int no;
        do {
            System.out.println("请选择需要驾驶的交通工具");
            System.out.println("1.摩托车 2.电动车 3.汽车 4.公交车");
            Scanner n = new Scanner(System.in);
            no = n.nextInt();
            switch (no) {
                case 1:
                    size = 2;
                    System.out.println("选择的交通工具为：" + name[no - 1] + "  可载" + size+"人");
                    b = false;
                    break;
                case 2:
                    size = 1;
                    System.out.println("选择的交通工具为：" + name[no - 1] + "  可载" + size+"人");
                    b = false;
                    break;
                case 3:
                    size = 3;
                    System.out.println("选择的交通工具为：" + name[no - 1] + "  可载" + size+"人");
                    b = false;
                    break;
                case 4:
                    size = 30;
                    System.out.println("选择的交通工具为：" + name[no - 1] + "  可载" + size+"人");
                    b = false;
                    break;
                default:
                    System.out.println("目前只有4种交通工具，请重新选择");
                    b = true;
                    break;
            }
        } while (b);
        return name[no - 1];
    }

    static float speedDown(float speed) {
        System.out.println("需要减速 ? km/h");
        Scanner s=new Scanner(System.in);
        float ns=s.nextFloat();
        float newspeed=speed-ns;
        System.out.println("已成功减速"+ns+"km/h "+"当前车速:"+newspeed+"km/h");
        return newspeed;
    }

    static float speedUp(float speed) {
        System.out.println("需要加速 ? km/h");
        Scanner s=new Scanner(System.in);
        float ns=s.nextFloat();
        float newspeed=speed+ns;
        System.out.println("已成功加速"+ns+"km/h "+"当前车速:"+newspeed+"km/h");
        return newspeed;
    }

    static float setSpeed(float speed) {
        boolean b = false;
        do {
            System.out.println("设置初始速度为：");
            Scanner s = new Scanner(System.in);
            speed = s.nextFloat();
            if (speed > 0) {
                b = true;
            }else {
                b=false;
            }
        } while (b != true);

        return speed;
    }

    static String move() {
        boolean b = false;
        String[] m = {"东", "南", "西","北"};
        int choice;
        do {
            System.out.println("请选择方向 0：东  1：南  2：西  3：北");
            Scanner c = new Scanner(System.in);
            choice = c.nextInt();
            if (choice == 0 || choice == 1|| choice == 2|| choice == 3) {
                System.out.println("移动方向设置成功！");
                System.out.println("车辆正在调整车头方向 向" +m[choice]);
                b = false;
            } else {
                    System.out.println("**********输入错误！请重新输入***********");
                    b = true;
            }
        } while (b);
        return m[choice];
    }

    public static void main(String[] args) {

        boolean b=false;
        float s=0;
        // 初始化 获得初速度，移动方向，交通工具名字
        float speed=setSpeed(s);
        String direction= move();
        String name=VehicleName();

        do {
            System.out.println("是否需要调整速度 1.加速  2.减速  3.保持当前速度");
            Scanner jj=new Scanner(System.in);
            int p=jj.nextInt();
            switch (p){
                case 1:
                    speed=speedUp(speed);
                    b=false;
                    break;
                case 2:
                    speed=speedDown(speed);
                    b=false;
                    break;
                case 3:
                    b=false;
                    break;
                default:
                    System.out.println("*********错误！请重新选择**********");
                    b=true;
            }
        }while(b);

        System.out.println("*********配置成功**********");
        System.out.println("您驾驶着您的"+name+"以"+speed+"km/h的速度，"+"向"+direction+"行驶");
    }

}
